﻿using System;
using System.Windows.Forms;
using cndp.Model;

namespace cndp.View
{
    public partial class FormAddEvent : Form
    {
        public FormAddEvent()
        {
            EventId = -1;
            EventCouple = false;
            EventGender = "";
            EventBracket = "";
            EventHeight = 0;
            EventRounds = 0;
            EventMaxDivers = 0;
            EventMaxJudges = 0;
            EventStarttime = "0000-00-00 00:00";
            EventFinishtime = "0000-00-00 00:00";
            InitializeComponent();
        }

        public int EventId { get; set; }
        public bool EventCouple { get; set; }
        public string EventGender { get; set; }
        public string EventBracket { get; set; }
        public double EventHeight { get; set; }
        public int EventRounds { get; set; }
        public int EventMaxDivers { get; set; }
        public int EventMaxJudges { get; set; }
        public string EventStarttime { get; set; }
        public string EventFinishtime { get; set; }

        private void buttonAdd_Click(object sender, EventArgs e)
        {
            var d = new Datacheck();
            if (d.CheckIfInteger(textBoxId.Text))
            {
                EventId = Convert.ToInt32(textBoxId.Text);
                EventCouple = checkBoxCouple.Checked;
                if (radioButtonMan.Checked && !(radioButtonWomen.Checked))
                {
                    EventGender = "Herr";
                    if (comboBoxClass.SelectedIndex > -1)
                    {
                        EventBracket = comboBoxClass.Text;
                        if (comboBoxHeight.SelectedIndex > -1)
                        {
                            EventHeight = Convert.ToDouble(comboBoxHeight.SelectedItem);
                            if (d.CheckIfInteger(textBoxRounds.Text))
                            {
                                EventRounds = Convert.ToInt16(textBoxRounds.Text);
                                if (d.CheckIfInteger(textBoxMaxnumber.Text) && comboBoxJudge.SelectedIndex > -1)
                                {
                                    EventMaxDivers = Convert.ToInt16(textBoxMaxnumber.Text);
                                    EventMaxJudges = Convert.ToInt16(comboBoxJudge.SelectedItem);
                                    if (d.CheckIfIntegerAndNotNegative(comboBoxStarttimeday.Text) &&
                                        d.CheckIfIntegerAndNotNegative(comboBoxStarttimemonth.Text) &&
                                        d.CheckIfIntegerAndNotNegative(comboBoxStarttimeyear.Text) &&
                                        d.CheckIfInteger(textBoxStarttimehour.Text) &&
                                        d.CheckIfInteger(textBoxStarttimemin.Text))
                                    {
                                        EventStarttime = comboBoxStarttimeyear.SelectedItem + "-" +
                                                         comboBoxStarttimemonth.SelectedItem + "-" +
                                                         comboBoxStarttimeday.SelectedItem + " " +
                                                         textBoxStarttimehour.Text + ":" + textBoxStarttimemin.Text;
                                        if (d.CheckIfIntegerAndNotNegative(comboBoxEndtimeday.Text) &&
                                            d.CheckIfIntegerAndNotNegative(comboBoxEndtimemonth.Text) &&
                                            d.CheckIfIntegerAndNotNegative(comboBoxEndtimeyear.Text) &&
                                            d.CheckIfInteger(textBoxEndtimehour.Text) &&
                                            d.CheckIfInteger(textBoxEndtimemin.Text))
                                        {
                                            EventFinishtime = comboBoxEndtimeyear.SelectedItem + "-" +
                                                              comboBoxEndtimemonth.SelectedItem + "-" +
                                                              comboBoxEndtimeday.SelectedItem + " " +
                                                              textBoxEndtimehour.Text + ":" + textBoxEndtimemin.Text;
                                            DialogResult = DialogResult.OK;
                                        }
                                        else
                                            MessageBox.Show(@"Välj ett giltigt slutdatum för grenen",
                                                @"Ogiltigt slutdatum");
                                    }
                                    else
                                        MessageBox.Show(@"Välj ett giltigt startdatum för grenen", @"Ogiltigt startdatum");
                                }
                                else
                                    MessageBox.Show(@"Välj korrekt antal simhoppare och/eller domare",
                                        @"Ogiltigt antal simhoppare/domare");
                            }
                            else
                                MessageBox.Show(@"Ogiltigt format på rundor.", @"Ogiltigt format.");
                        }
                        else
                            MessageBox.Show(@"Välj en giltig höjd.", @"Ogiltig höjd");
                    }
                    else
                        MessageBox.Show(@"Välj en giltig åldersklass.", @"Ogiltig åldersklass");
                }
                else if (!(radioButtonMan.Checked) && (radioButtonWomen.Checked))
                {
                    EventGender = "Dam";
                    if (comboBoxClass.SelectedIndex > -1)
                    {
                        EventBracket = comboBoxClass.Text;
                        if (comboBoxHeight.SelectedIndex > -1)
                        {
                            EventHeight = Convert.ToDouble(comboBoxHeight.SelectedItem);
                            if (d.CheckIfInteger(textBoxRounds.Text))
                            {
                                EventRounds = Convert.ToInt16(textBoxRounds.Text);
                                if (d.CheckIfInteger(textBoxMaxnumber.Text) && comboBoxJudge.SelectedIndex > -1)
                                {
                                    EventMaxDivers = Convert.ToInt16(textBoxMaxnumber.Text);
                                    EventMaxJudges = Convert.ToInt16(comboBoxJudge.SelectedItem);
                                    if (comboBoxStarttimeday.SelectedIndex > -1 &&
                                        comboBoxStarttimemonth.SelectedIndex > -1 &&
                                        comboBoxStarttimeyear.SelectedIndex > -1 &&
                                        d.CheckIfInteger(textBoxStarttimehour.Text) &&
                                        d.CheckIfInteger(textBoxStarttimemin.Text))
                                    {
                                        EventStarttime = comboBoxStarttimeyear.SelectedItem + "-" +
                                                         comboBoxStarttimemonth.SelectedItem + "-" +
                                                         comboBoxStarttimeday.SelectedItem + " " +
                                                         textBoxStarttimehour.Text + ":" + textBoxStarttimemin.Text;
                                        if (comboBoxEndtimeday.SelectedIndex > -1 &&
                                            comboBoxEndtimemonth.SelectedIndex > -1 &&
                                            comboBoxEndtimeyear.SelectedIndex > -1 &&
                                            d.CheckIfInteger(textBoxEndtimehour.Text) &&
                                            d.CheckIfInteger(textBoxEndtimemin.Text))
                                        {
                                            EventFinishtime = comboBoxEndtimeyear.SelectedItem + "-" +
                                                              comboBoxEndtimemonth.SelectedItem + "-" +
                                                              comboBoxEndtimeday.SelectedItem + " " +
                                                              textBoxEndtimehour.Text + ":" + textBoxEndtimemin.Text;

                                            DialogResult = DialogResult.OK;
                                        }
                                        else
                                            MessageBox.Show(@"Välj ett giltigt slutdatum för tävlingen",
                                                @"Ogiltigt slutdatum");
                                    }
                                    else
                                        MessageBox.Show(@"Välj ett giltigt startdatum för tävlingen",
                                            @"Ogiltigt startdatum");
                                }
                                else
                                    MessageBox.Show(@"Välj korrekt antal simhoppare och/eller domare",
                                        @"Ogiltigt antal simhoppare/domare");
                            }
                            else
                                MessageBox.Show(@"Ogiltigt format på rundor.", @"Ogiltigt format.");
                        }
                        else
                            MessageBox.Show(@"Välj en giltig höjd.", @"Ogiltig höjd");
                    }
                    else
                        MessageBox.Show(@"Välj en giltig åldersklass.", @"Ogiltig åldersklass");
                }
                else
                {
                    MessageBox.Show(@"Välj ett giltigt kön.", @"Ogiltigt kön.");
                }
            }
            else
                MessageBox.Show(@"Ogiltigt tävlings-ID.", @"Ogiltigt tävlings-ID");
        }

        private void FormAddEvent_Load(object sender, EventArgs e)
        {
            KeyPreview = true;
            var toolTip1 = new ToolTip();

            toolTip1.AutoPopDelay = 5000;
            toolTip1.InitialDelay = 1000;
            toolTip1.ReshowDelay = 500;

            toolTip1.ShowAlways = true;

            toolTip1.SetToolTip(LabelHelpStartTime, "Klockslag 'mm:ss'");
            toolTip1.SetToolTip(labelHelpFinishTime, "Klockslag 'mm:ss'");
        }

        private void FormAddEvent_MouseDown(object sender, MouseEventArgs e)
        {
        }

        private void FormAddEvent_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Escape)
                DialogResult = DialogResult.Cancel;
        }
    }
}